<?php

use App\Services\Ajax;

if (! function_exists('ajax_link')) {
    /**
     * 获取 Ajax 链接。
     *
     * @param string $text 链接的文字。
     * @param string $url Ajax url。
     * @param array $params Ajax post 参数数组。
     * @param array $attributes <a> 的属性数组。
     * @return string
     */
    function ajax_link($text, $url, $params = [], $attributes = [])
    {
        return Ajax::getLink($text, $url, $params, $attributes);
    }
}

if (! function_exists('ajax_js')) {
    /**
     * 获取 ajax 调用的 JavaScript 代码。
     *
     * @param string $url Ajax url。
     * @param array $params Ajax post 参数数组。
     * @param boolean $escape 是否处理引号等。
     * @param string $history 用于浏览器历史记录的字符串，将直接加到 # 之后。
     * @return string 返回 ajax 调用代码。
     */
    function ajax_js($url, $params = [], $escape = true, $history = null)
    {
        return Ajax::getJS($url, $params, $escape, $history);
    }
}

if (! function_exists('ajax_form')) {
    /**
     * 获取 AJAX 表单的开始标签 HTML 代码。
     *
     * @param array $attributes <form> 的属性数组。
     * @return string
     */
    function ajax_form($attributes)
    {
        return Ajax::getFormStart($attributes);
    }
}

/**
 * 获取文件的后缀名
 * @param $filename
 * @return string
 */
function getExt($filename)
{
    return strpos($filename, '.') === false ? '' : strtolower(preg_replace('/[^a-z0-9]/i', '', substr($filename, strripos($filename, '.')+1)));
}

/**
 * 断点
 * @author lxy
 * @datetime 2021-01-20
 */
function  d($str){
    var_dump($str);exit;
}


/**
 * 添加待办事项
 * @author lxy
 * @datetime 2022-12-08
 */
use App\Models\System\Backlog;

function add_backlog($id,$type,$data)
{
    return Backlog::firstOrCreate(
                ['lid'=>$id,'type'=>$type],
                $data
            );
}

/**
 * 修改待办事项
 * @author lxy
 * @datetime 2022-12-08
 */
function edit_backlog($id,$type,$data)
{
    return Backlog::where('lid',$id)->where('type',$type)->update($data);
}

/**
 * 删除待办事项
 * @author lxy
 * @datetime 2022-12-08
 */
function del_backlog($id,$type)
{
    return Backlog::where('lid',$id)->where('type',$type)->delete();
}

/**
 * 是否是审核管理员
 * @author lxy
 * @datetime 2023-02-08
 * @return true|false
 */
function is_checker(){
    return auth()->user()->is_checker;
}

/**
 * 文件上传
 * @author lxy
 * @datetime 2023-02-21
 * @param $files 前端返回文件数组
 * @return $proof_material array
 */
use App\Models\File;

function file_upload($files)
{
    $files['url'] = explode('/',$files['url']);
    $files['ext'] = explode('.',$files['url'][5]);
    $fileObj = File::create([
        'file_name'=>$files['file_name'],
        'file_key'=>$files['ext'][0],
        'extension'=>$files['ext'][1],
        'file_path'=>$files['url'][3].'/'.$files['url'][4].'/'.$files['url'][5],
        'file_dir'=>'/back-end/uploadfiles/',
        'file_size'=>$files['size'],
    ]);

    $proof_material = [
        'id'=>$fileObj->id,
        'editable'=>true,
        'fileName'=>$files['file_name'],
        'filePath'=>$fileObj->id.'/'.$files['ext'][0],
        'extension'=>$files['ext'][1],
    ];

    return $proof_material;
}

/**
 * 是否有审核权限，审核权限显示所有数据
 * @author lxy
 * @datetime 2023-05-05
 * @param $menu_id int 审核按钮id
 */
use App\Models\System\Rolepower;

function is_check($menu_id)
{
    $role_id = auth()->user()->cur_role_id;
    $rolepower = Rolepower::where('role_id',$role_id)->pluck('actionid')->toArray();
    return in_array($menu_id,$rolepower);
}

/*
 * @Description: excel导入时程序处理成数字格式的时间转化为日期格式
 * @Author:  Kzj
 * @Date: 2023-11-14 10:29:10
 * @param $date 导入的时间程序处理成数字格式
 * @return date格式日期
 */
if (! function_exists('excelDateFormat')) {
    function excelDateFormat($date, $format = 'Y-m-d H:i:s')
    {
        $d = 25569;
        $t = 24 * 60 * 60;
        if(is_numeric($d)) {
            return gmdate($format, ($date - $d) * $t);
        }

        return $d;
    }
}

if (!function_exists('extension2mimeType')) {
    /**
     * 扩展名转换成 MIME type
     *
     * @param string $extension
     *
     * @return string
     */
    function extension2mimeType($extension)
    {
        $mime_types = [
            'wps'  => 'application/wpsoffice',
            'heic' => 'image/heic',
            'rar'  => 'application/x-rar-compressed',
        ];
        return $mime_types[$extension] ?? \GuzzleHttp\Psr7\MimeType::fromExtension($extension);
    }
}
